/* ParticleType.cpp
 *
 *  Created on: Jan 2, 2014
 *
 * Author: ignacio.martin@imdea.org
 *
 * Copyright 2014 IMDEA Materials Institute, Getafe, Madrid, Spain
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "kernel/ParticleType.h"
#include "domains/Global.h"
#include "io/ParameterManager.h"

namespace Kernel {

bool ID::operator<(const ID &id) const
{
	if(_mt != id._mt)
		return _mt < id._mt;
	if(_pt != id._pt)
		return _pt < id._pt;
	return _pos < id._pos;
}

bool ID::operator==(const ID &id) const
{
	if(_mt != id._mt)
		return false;
	if(_pt != id._pt)
		return false;
	return _pos == id._pos;
}

std::ostream & operator<<(std::ostream &os, const ID &id)
{
	os << Domains::global()->PM()->getRawIDName(id);
	return os;
}

}
